cmake_minimum_required(VERSION 3.16)

project(HeartVoiceAiEcgSystem VERSION 0.1 LANGUAGES CXX)

set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_AUTORCC ON)

find_package(Qt6 6.4 REQUIRED COMPONENTS Quick)

qt_standard_project_setup()

qt_add_executable(appHeartVoiceAiEcgSystem
    src/main.cpp
)

qt_add_qml_module(appHeartVoiceAiEcgSystem
    URI HeartVoiceAiEcgSystem
    VERSION 1.0

    QML_FILES qml/Main.qml
    SOURCES src/ecgsignal.h src/ecgsignal.cpp
    SOURCES src/beats.h src/beats.cpp
    SOURCES src/ecg.h src/ecg.cpp
    SOURCES src/beatslistmodel.h src/beatslistmodel.cpp

    QML_FILES qml/EcgCanvas.qml
    QML_FILES qml/Beats.qml
    QML_FILES qml/EcgFragmentBeatsInfo.qml
    QML_FILES qml/EcgGrid.qml
    QML_FILES qml/utils.js
    QML_FILES qml/DetailsPage.qml
    QML_FILES qml/CustomButton.qml
    QML_FILES qml/ScatterPage.qml
    QML_FILES qml/EcgFragment.qml

    RESOURCES res.qrc
    QML_FILES qml/RrIntervalChart.qml
    QML_FILES qml/RrScatter.qml
    SOURCES src/ecgfilter.h src/ecgfilter.cpp
    SOURCES src/ecgdetection.h src/ecgdetection.cpp
    SOURCES src/ecgseekpeaks.h src/ecgseekpeaks.cpp
)

# Qt for iOS sets MACOSX_BUNDLE_GUI_IDENTIFIER automatically since Qt 6.1.
# If you are developing for iOS or macOS you should consider setting an
# explicit, fixed bundle identifier manually though.
set_target_properties(appHeartVoiceAiEcgSystem PROPERTIES
#    MACOSX_BUNDLE_GUI_IDENTIFIER com.example.appHeartVoiceAiEcgSystem
    MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
    MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
    MACOSX_BUNDLE TRUE
    WIN32_EXECUTABLE TRUE
)

target_link_libraries(appHeartVoiceAiEcgSystem
    PRIVATE Qt6::Quick
)

include(GNUInstallDirs)
install(TARGETS appHeartVoiceAiEcgSystem
    BUNDLE DESTINATION .
    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
